#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re

def analyze_text(text):
    # 从文本中提取日期
    date_pattern = r'(\d{1,2}月\d{1,2}日)'
    date_match = re.search(date_pattern, text)
    if date_match:
        date = date_match.group(1)
    else:
        date = "Unknown Date"
    title0 = "家庭作业"+ date
    # 分割文本成块
    block_pattern = r'(?:\n|^)\d{1,2}月\d{1,2}日.*?(?=\n\d{1,2}月\d{1,2}日|\Z)'
    blocks = re.findall(block_pattern, text, re.DOTALL)

    text = ""
    # 输出结果
    print(f"## {date}\n")
    text+=f"## {date}\n"
    for block in blocks:
        title_pattern = r'(\d{1,2}月\d{1,2}日.*?)\n'
        match = re.search(title_pattern, block)
        if match:
            title = match.group(1)
            print(f"\n### {title}")
            text+=f"\n### {title}"
        content = re.sub(title_pattern, '', block)
        print('\n'+content)
        text+='\n'+content
    return title0, text


import markdown
import pdfkit
import os

def markdown_to_pdf(markdown_text, output_path):
    # 将Markdown文本转换为HTML
    html = markdown.markdown(markdown_text)

    # 将HTML保存为临时文件
    with open('temp.html', 'w',encoding='utf-8') as f:
        f.write(html)

    # PDF转换配置项
    options = {
        'encoding': 'UTF-8',
        'no-outline': None,
        'quiet': ''
    }

    # 使用pdfkit将HTML转换为PDF
    pdfkit.from_file('temp.html', output_path, options=options)

    # 删除临时文件
    os.remove('temp.html')

def text2pdf(text,path):
    # 输入文本
    text = "12月26日数学作业\n1️⃣描红本三行\n2️⃣完成知能的“有几盒牛奶”\n12月26日语文作业\n1.背诵第10课课文。\n2.复习第10课生字，二类字会认、会注音、会口头组词。一类字会认、会写、会注音、会书面组词。\n3.完成第10课《写字书》和《知训》（自愿完成）\n4.第10课“自、己、门、衣”带拼音写四遍，带拼音组两个词。（自愿完成）\n5.每日亲子阅读。\n12月26日英语作业\n1.背诵课本52页。\n2.尝试背诵课本54页。\n3.读课本55页chant三遍。"
    text = "\r\n\r\n".join(text.split('\n'))
    print(text)
    # 分析文本
    title,markdown_text = analyze_text(text)

    print(title)
    print(markdown_text)
    print(title)
    # from datetime import datetime

    # # 获取当前时间
    # now = datetime.now()

    # # 格式化日期
    # formatted_date = now.strftime("%Y%m%d")

    # print("格式化后的日期:", formatted_date)
    # # 调用函数将Markdown转换为PDF
    # markdown_to_pdf(markdown_text, f'宝仔作业{formatted_date}.pdf')
    # markdown_to_pdf(markdown_text, f'{title}.pdf')
    markdown_to_pdf(markdown_text, f'{path}/output.pdf')